#ifndef ALGORITMOS_H
#define ALGORITMOS_H

#define TS  0.05
#define CALIBRACION 64
#define FILTRO  16

class Algoritmos
{
public:
    Algoritmos();
    void initialize();
    void integrar(int);
    void calibrar(double*);
    void filtrar(double*);
    int getOffset();
    void setMuestrasFiltro(int);
    double getPosicion();
    double* vectorAceleracion();
    double* vectorVelocidad();
    double* vectorPosicion();

private:
    double velocidad[20000];
    double posicion[20000];
    double aceleracion[20000];
    double tempAcel[8];
    int index;
    int indexTemp;
    int countSamples;
    int offset;
    bool endMovement;
    bool startSpeed;
    bool reachZero;
    bool movementEndCheck(double* value);
};

#endif // ALGORITMOS_H
